<template>
{{#if page.psSysPFPlugin}}
  {{> @macro/plugins/view/view-use.hbs appPlugin=page.psSysPFPlugin}}
{{else}}
  {{#if page.psViewLayoutPanel.useDefaultLayout}}
    <AppMDViewLayout :class="classNames" :openType="openType">
   	    <template #viewHeaderContentLeft {{#unless (and page.enableQuickGroup page.quickGroupPSCodeList)}}v-if="model.showCaption && !noViewCaption" {{/unless}}>
			<div {{#and page.enableQuickGroup page.quickGroupPSCodeList}}v-if="model.showCaption && !noViewCaption" {{/and}}class="view-header__caption">
				{{> @macro/view/view-caption.hbs}}
			</div>
		{{#and page.enableQuickGroup page.quickGroupPSCodeList}}
			<div class="view-header__quickgroup">
				{{> @macro/common/quick-group.hbs}}
			</div>
		{{/and}}
		</template>
		{{#or page.enableQuickSearch (hasCtrl page.ctrls 'TOOLBAR')}}
        <template #viewHeaderContentRight>
    	{{#and page.enableQuickSearch}}
			<div class="view-header__quicksearch" v-show="!store.expandSearchForm">
				{{> @macro/common/quick-search.hbs}}
			</div>
			{{/and}}
			{{#each page.ctrls as | ctrl |}}
				{{#eq ctrl.controlType 'TOOLBAR'}}
			<div class="view-header__toolbar">
				{{> @macro/widgets/toolbar/toolbar.hbs page=page ctrl=ctrl}}
			</div>
				{{/eq}}
			{{/each}}
        </template> 
		{{/or}}
        {{#hasCtrl page.ctrls 'SEARCHFORM'}}
		<template v-slot:[searchFormSlotName]>
		{{#each page.ctrls as | ctrl |}}
			{{#and (eq ctrl.controlType 'SEARCHFORM') (neq ctrl.formStyle 'SEARCHBAR')}}
			{{> @macro/widgets/form-detail/search-form.hbs ctrl=ctrl}}
			{{/and}}
		{{/each}}
		</template>
		{{/hasCtrl}}
        <template #default>
		{{#each page.ctrls as | ctrl |}}
			{{#eq ctrl.controlType 'TREEVIEW'}}
			{{> @macro/widgets/tree-detail/tree.hbs ctrl=ctrl props=":singleSelect='singleSelect'"}}
			{{/eq}}
		{{/each}}
		</template>
        {{> @macro/view/view-msg.hbs}}  
  </AppMDViewLayout>
  {{else}}
	<div :class="classNames">
		{{#if page.psViewLayoutPanel.rootPSPanelItems}}
			{{#each page.psViewLayoutPanel.rootPSPanelItems as | panelItem |}}
		{{> @macro/widgets/panel-detail/include-panel.hbs type=panelItem.itemType item=panelItem isMultiData=false panel=page.psViewLayoutPanel page=page}}
			{{/each}}
		{{/if}}
	</div>
  {{/if}}
{{/if}}
</template>
<script setup lang="ts">
// 基于template/src/views/\{{appModules}}/\{{pages@DEPICKUPTREEVIEW}}/\{{spinalCase page.codeName}}.vue.hbs生成
{{#if page.psViewLayoutPanel.useDefaultLayout}}
import { AppMDViewLayout } from '@components/layout/md-view-layout';
{{> @macro/widgets/ctrl/import-ctrl.hbs ctrls=page.ctrls}}
{{else}}
import { AppCtrlPos, AppScrollContainer, AppSimpleFlexContainer, AppStandardContainer, AppTabPanel, AppTabPage } from '@components/layout-element/structure';
{{#if page.psViewLayoutPanel.viewProxyMode}}
{{> @macro/widgets/ctrl/import-ctrl.hbs ctrls=page.psViewLayoutPanel.psControls}}
{{else}}
{{> @macro/widgets/ctrl/import-ctrl.hbs ctrls=page.ctrls}}
{{/if}}
{{/if}}
import { model } from "./{{spinalCase page.codeName}}-model";
import { 
	useNavParamsBind, 
	useEventBind, 
	handleCtrlAction, 
	handleCtrlInit, 
	handleCtrlDestroy, 
	getViewClassNames,
{{#and page.enableQuickGroup page.quickGroupPSCodeList}}
  handleQuickGroupValueChange,
{{/and}}
{{#if page.enableQuickSearch}}
  handleQuickSearch,
{{/if}}
{{#page.ctrls}}
  {{#eq controlType 'TOOLBAR'}}
  handleToolbarItemClick,
  {{/eq}}
{{/page.ctrls}}
{{#unless page.psViewLayoutPanel.useDefaultLayout}}
  handleComponentAction,
  {{#if page.psViewLayoutPanel.psControls}}
    {{#each page.psViewLayoutPanel.psControls as | ctrl |}}
    	{{#eq ctrl.controlType 'TOOLBAR'}}
  handleToolbarItemClick,
    	{{/eq}}
    {{/each}}
  {{/if}}
{{/unless}}
} from '@/hooks/use-view';
import { PickupTreeViewActionType, PickupTreeViewController, IPickupTreeViewAbility, IPickupTreeViewControllerParams, IPickupTreeViewStore, IPickupTreeViewController, IParam, IContext, ILoadingHelper, IEvent, IProjectSetting } from "@/core";
{{> @macro/view/view-props.hbs
  	props="singleSelect?: boolean"
	propsDefault="singleSelect: false"
}}

{{> @macro/common/emit.hbs name="view" actionType="PickupTreeViewActionType" ability="IPickupTreeViewAbility"}}

//  样式名称
const classNames = computed(() => {
    return getViewClassNames(model, props);
});
const projectSetting: IProjectSetting = App.getProjectSetting();

const showTabPageExp = projectSetting.multiTabsSetting.show;

const searchFormSlotName = computed(() => {
    let searchFormSlotName = 'viewHeaderTop';
    if (!showTabPageExp && props.openType == 'ROUTE') {
        searchFormSlotName = 'viewHeaderBottom';
    }
  	return searchFormSlotName;
});
const params: IPickupTreeViewControllerParams<PickupTreeViewActionType, IPickupTreeViewAbility> = {
	name: props.name,
	model,
	evt,
	isLoadDefault: props.isLoadDefault,
	openType: props.openType,
	pLoadingHelper: props.pLoadingHelper,
	handler: (data: IPickupTreeViewStore) => { return reactive(data); }
}

{{> @macro/common/controller.hbs name="view" IController="IPickupTreeViewController" store="IPickupTreeViewStore" ability="IPickupTreeViewAbility" controller="PickupTreeViewController"}}
</script>
